package com.yoake.campus.mapper;

import java.util.List;
import com.yoake.campus.domain.CampusFile;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 文件管理Mapper接口
 * 
 * @author yoake
 * @date 2024-12-13
 */
public interface CampusFileMapper 
{
    /**
     * 查询文件管理
     * 
     * @param fileId 文件管理主键
     * @return 文件管理
     */
    public CampusFile selectCampusFileByFileId(Long fileId);

    /**
     * 查询文件管理列表
     * 
     * @param campusFile 文件管理
     * @return 文件管理集合
     */
    public List<CampusFile> selectCampusFileList(CampusFile campusFile);

    /**
     * 新增文件管理
     * 
     * @param campusFile 文件管理
     * @return 结果
     */
    public int insertCampusFile(CampusFile campusFile);

    /**
     * 修改文件管理
     * 
     * @param campusFile 文件管理
     * @return 结果
     */
    public int updateCampusFile(CampusFile campusFile);

    /**
     * 删除文件管理
     * 
     * @param fileId 文件管理主键
     * @return 结果
     */
    public int deleteCampusFileByFileId(Long fileId);

    /**
     * 批量删除文件管理
     * 
     * @param fileIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCampusFileByFileIds(Long[] fileIds);

    /**
     * 批量插入文件管理
     * @param list
     * @return
     */
    public int batchInsertCampusFile(List<CampusFile> list);

    /**
     * 查询文件url
     * @param contentId
     * @return
     */
    @Select("SELECT url FROM campus_file WHERE content_id = #{contentId}")
    public List<String> selectFileUrlByContentId(@Param("contentId") Long contentId);


    /**
     * 根据内容id删除文件
     * @param contentId
     * @return
     */
    @Delete("DELETE FROM campus_file WHERE content_id = #{contentId}")
    public int deleteCampusFileByContentId(@Param("contentId") Long contentId);

}
